//! if let 和 while let

fn main() {
  // if let表达式，和match表达式相似，
  // if let左侧为模式，右侧为要匹配的值。
  // 该代码表示binary默认为0，如果boolean为true，
  // 则将binary的值修改为1。
  let boolean = true;
  let mut binary = 0;
  if let true = boolean {
      binary = 1;
  }
  assert_eq!(binary, 1);

  // 不使用 while let 和使用  while let 的区别
  let mut arr = vec![1, 2, 3, 4, 5, 6];

  // 不使用 while let
  // loop {
  //     match arr.pop() {
  //         Some(x) => println!("{}", x),
  //         None => break,
  //     }
  // }

  // 使用 while let
  while let Some(x) = arr.pop() {
      println!("{}", x);
  }
}
